#!/bin/bash

# 部署前检查脚本
set -e

echo "🔍 开始部署前检查..."

# 检查Node.js版本
if command -v node >/dev/null 2>&1; then
    NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
    if [ "$NODE_VERSION" -ge 18 ]; then
        echo "✅ Node.js版本检查通过: $(node -v)"
    else
        echo "❌ Node.js版本过低，需要18+，当前: $(node -v)"
        exit 1
    fi
else
    echo "❌ Node.js未安装"
    exit 1
fi

# 检查npm
if command -v npm >/dev/null 2>&1; then
    echo "✅ npm检查通过: $(npm -v)"
else
    echo "❌ npm未安装"
    exit 1
fi

# 检查必要文件
REQUIRED_FILES=(
    "package.json"
    "src/main.ts"
    "src/app.module.ts"
    "deploy-native.sh"
)

for file in "${REQUIRED_FILES[@]}"; do
    if [ -f "$file" ]; then
        echo "✅ 文件检查通过: $file"
    else
        echo "❌ 缺少必要文件: $file"
        exit 1
    fi
done

# 检查依赖
echo "🔍 检查依赖..."
if [ -f "package.json" ]; then
    if npm list --depth=0 >/dev/null 2>&1; then
        echo "✅ 依赖检查通过"
    else
        echo "⚠️  依赖可能有问题，建议运行: npm install"
    fi
fi

# 检查TypeScript编译
echo "🔍 检查TypeScript编译..."
if npm run build >/dev/null 2>&1; then
    echo "✅ TypeScript编译通过"
else
    echo "❌ TypeScript编译失败"
    exit 1
fi

echo "🎉 部署前检查全部通过！"
